#连接到虾皮助理sql的图片列
import sqlite3 as db
# 从SQLite文件中读取数据
def readFronSqllite(db_path,exectCmd):
    conn = db.connect(db_path)  # 该 API 打开一个到 SQLite 数据库文件 database 的链接，如果数据库成功打开，则返回一个连接对象
    cursor=conn.cursor()        # 该例程创建一个 cursor，将在 Python 数据库编程中用到。
    conn.row_factory=db.Row     # 可访问列信息
    cursor.execute(exectCmd)    #该例程执行一个 SQL 语句
    rows=cursor.fetchall()      #该例程获取查询结果集中所有（剩余）的行，返回一个列表。当没有可用的行时，则返回一个空的列表。
    return rows,cursor,conn
    #print(rows[0][2]) # 选择某一列数据

'''
使用说明：
1、找到虾皮助理的主文件使用的sqlit数据库文件路径，输入进去
2、把百度识图识别出的尺寸图片路径全部筛选出来，用sublime换行，每个用逗号隔开，进行粘贴回车
3、选择要替换到9张图中的第几个位置，输入后回车
'''

if __name__ == '__main__':
    sqlite_file_path=input('请输入包含itemview 表的数据库路径，默认是在  D:\易刊蝦皮助理國際版\shopeemy.sqlite ')
    rows = readFronSqllite(r"%s"%sqlite_file_path, "select * from itemview")
    print('请复制粘贴从excel挑选出来的已经确定是尺寸图的图片路径，以逗号分隔')
    input_txt=input()
    print('更换第几张图? 第1--10张')
    n = int(input())-1
    已经替换过的商品ID=[]
    input_list=input_txt.split(',')
    for i in input_list:
        # print(i)
        my_inquiry = rows[1].execute('select * from itemview where 圖片 like "%%%s%%"'%i)
        for ii in my_inquiry:
            # print(ii)
            #找到蝦皮助理的那一條记录，进行split
            shopeeImges_list=ii[4].split('|')
            #重新组合新的顺序
            #1、找出需要替换图片的位置
            this_number=shopeeImges_list.index(i)

            #查找ID出现的次数
            ID出现次数=已经替换过的商品ID.count(ii[0])
            shopeeImges_list[this_number] = shopeeImges_list[n+ID出现次数]
            shopeeImges_list[n+ID出现次数] = i

            #新列表写入到shopee助理里面
            new_list_str='|'.join(shopeeImges_list)
            rows[1].execute('update itemview set 圖片="%s" where id=%d' % (new_list_str,ii[0]))
            已经替换过的商品ID.append(ii[0])
            print('正在进行第%d次替换shopee商品ID为%s的图片顺序'%(ID出现次数+1,ii[0]))
    rows[2].commit()
    print('替换完成已提交数据库')





